Storing and reading multiplexed content

ABSTRACT

A method for displaying content stored in a block of multiplexed content, the multiplexed content including a plurality of instances of content where each instance of content includes an associated content identifier, the method including receiving, at a content receiver, content identifying information for the content and instructions for displaying the content, determining a selected content identifier based on the content identifying information, selecting the block from one or more blocks based on the selected content identifier, scanning the block for a content identifier and encountering the content identifier, comparing the encountered content identifier to the selected content identifier, and processing an instance of content associated with the encountered content identifier where the encountered content identifier corresponds to the selected content identifier. A system for displaying and a system for storing multiplexed content are also described.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present application claims the benefit under 35 U.S.C. §119(e) of U.S. Provisional Patent Application No. 61/526,581, which was filed on Aug. 23, 2011, and entitled “Storing and Reading Multiplexed Content,” which is incorporated by reference into the present application in its entirety.

FIELD OF THE INVENTION

The present application relates generally to grouping, transmitting, storing, and providing access to information. More particularly, the present application relates to grouping, storing, transmitting, and providing access to audiovisual content . Still more particularly, the present application relates to grouping audiovisual content based on selected television channels and selected times, transmitting the content for all selected channels covering the selected time, and providing access to any of the selected channels for any time within the selected times.

SUMMARY

In one embodiment, a method for displaying content stored in a block of multiplexed content may be provided. The method may be suitable where the multiplexed content includes a plurality of instances of content and each instance of content includes an associated content identifier. The method may include receiving, at a content receiver, content identifying information for the content and instructions for displaying the content. The method may also include determining a selected content identifier based on the content identifying information and selecting the block from one or more blocks based on the selected content identifier. The method may further include scanning the block for a content identifier and encountering the content identifier and comparing the encountered content identifier to the selected content identifier. The method may also include processing an instance of content associated with the encountered content identifier where the encountered content identifier corresponds to the selected content identifier.

In another embodiment, a system for displaying content stored in a block of multiplexed content may be provided. The system may be suitable for use where the block of multiplexed content includes a plurality of instances of content and each instance of content includes an associated content identifier. The system may include a computer readable storage medium having the block of multiplexed content stored thereon and a processor in communication with the storage medium. The system may also include block selection module accessible by the processor and including block identifiers associated with content identifiers stored in respective blocks. The system may also include a content identifier selection module accessible by the processor and including content identifiers associated with content identifying information relating to the plurality of instances of content.

In still another embodiment, a system for storing a block of multiplexed content, may include a content receiver. The content receiver may include a tuner for tuning to a selected frequency for receiving the multiplexed content, a computer readable storage medium for storing the multiplexed content, and a processor for controlling the tuner and facilitating the storage of the multiplexed content. The computer readable storage medium may include computer implemented instructions stored thereon for processing by the processor. The computer implemented instructions may define a plurality of operations, including receiving the multiplexed content, storing the multiplexed content in the computer readable storage medium in multiplexed form, storing content identifiers together with the multiplexed content, and storing a block identifier identifying the block of multiplexed content.

It is to be understood that both the foregoing general description and the following detailed description are for purposes of example and explanation and do not necessarily limit the present disclosure. The accompanying drawings, which are incorporated in and constitute a part of the specification, illustrate subject matter of the disclosure. Together, the descriptions and the drawings serve to explain the principles of the disclosure.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a schematic diagram of a system according to some embodiments.

FIG. 2 is a schematic diagram of a system according to another embodiment.

FIG. 3 depicts a system including portions of the system of FIG. 2 and several additional devices.

FIG. 4 is a flow chart depicting a method of processing multiplexed content.

DETAILED DESCRIPTION OF THE EMBODIMENTS

The description that follows includes sample systems, methods, and computer program products that embody various elements of the present disclosure. However, it should be understood that the described disclosure may be practiced in a variety of forms in addition to those described herein.

Users of content receivers may desire to access different instances of content that are broadcast simultaneously and/or substantially contemporaneously by content providers. For example, many television programming viewers wish to watch different television programs that occupy the same broadcast time slot, such as the different television programs associated with the major television programs that are broadcast between seven PM and ten PM mountain time. Content receivers may attempt to address this issue by utilizing multiple tuners that can each separately present and/or record different, simultaneously broadcast instances of content. However, a separate tuner may still be required for each simultaneous or substantially contemporaneous instance of broadcast or otherwise received content that a content receiver user wishes to view and/or record. Further, in addition to separate tuners required for each instance of content, the content receiver may require sufficient resources to descramble and store each of the instances of content desired by the user.

FIG. 1 is a block diagram illustrating a system 100 for automatically recording multiple instances of content from one or more programming providers. The automatic recording of multiple instances of content provided by the system 100 may enable users of content receivers to access different instances of content that are broadcast simultaneously and/or substantially contemporaneously by content providers.

In various broadcast systems, content providers may broadcast content to a plurality of different content receivers via one or more frequency bands utilizing one or more satellites. Each multiplexed signal contained in the frequency band (sometimes referred to as a transponder) may be configured to include data related to one or more instances of content, such as one or more television programming channels. The data related to each of the instances of content included in each frequency may be scrambled utilizing one or more CWs (control words), which may then be encrypted to generate one or more ECMs (entitlement control messages) which may in turn be included with the data. A content receiver may typically tune to one or more of the frequency bands to receive the multiplexed signal that contains data for a particular programming channel utilizing one or more tuners. The content receiver may process only a subset of the programming channels by keeping the data associated with the particular programming channel and discarding data received via the tuned frequency band and multiplexed signal associated with other programming channels. The content receiver may decrypt the ECM included with the data associated with the particular programming channel to obtain the CW, descramble the data utilizing the CW, and store and/or transmit the data (e.g., decompressed, reconstructed audio and video data) to one or more presentation devices.

As illustrated in FIG. 1, in this implementation, one or more content providers may select multiple instances of content 101 to be automatically recorded such as by utilizing predefined recording parameters. For example, a content provider may select all of the television events defined as “primetime events” associated with all channels defined as “primetime television channels” for a particular period of time defined as “prime time” to be automatically recorded. In other examples, the content provider may select television events associated with programming channels for a particular time period (such as a half hour, multiple hours, and/or an entire programming day) in response to user selections. After the content provider selects the multiple instances of content, the multiple instances of content may be multiplexed utilizing a multiplexer 102. The multiplexed signal (which includes the multiplexed selected multiple instances of content) may then be scrambled by a scrambler 105 utilizing one or more CWs 103. The CW may be encrypted to generate an ECM, which may be included with the multiplexed signal. The scrambled multiplexed signal may then be included in a broadcast on a frequency band (e.g., cable, satellite), which may then be transmitted to one or more satellites 106 for broadcast. The satellite 106 may receive the frequency band (uplink frequency band) and then broadcast the multiplexed signal to a number of content receivers on a translated frequency band (downlink frequency band), such as a content receiver that includes a tuner 107.

The tuner 107 may tune to the frequency band that includes the multiple instances of content (which may be performed in response to one or more recording instructions received by the content receiver that includes the tuner from the content provider). The data received via the tuned frequency may be demultiplexed by a demultiplexer 109 and then descrambled by a descrambler 110 utilizing the CW before being stored in a non-transitory storage medium 111 (which may take the form of, but is not limited to, a magnetic storage medium; optical storage medium; magneto-optical storage medium; read only memory; random access memory; erasable programmable memory; flash memory; and so on) based on recording parameters, such as predefined recording parameters. The demultiplexer 109 may obtain the included ECM 104, and the ECM may be provided to a smart card 108 that may decrypt the ECM 104 to obtain the CW 103 for the descrambler 110. Hence, the multiple instances of content may subsequently all be available to a user of the content receiver (until such time as they are removed from the non-transitory storage medium) without requiring multiple tuners to receive each of the multiple instances of content, without requiring the smart card to decrypt multiple ECMs. In some implementations, the multiple instances of content may be stored in a single file.

Although the system 100 is illustrated in FIG. 1 and is described above as including a number of specific components configured in a specific arrangement, it is understood that this is for the purposes of example and other arrangements involving fewer and/or additional components are possible without departing from the scope of the present disclosure. For example, in various implementations, the multiple instances of content may be individually scrambled utilizing the control word prior to multiplexing. In another example, in some implementations, the data received via the tuned frequency may be descrambled utilizing the control word before being demultiplexed. In yet another example, in various implementations, the multiple instance of content may be re-encrypted before being stored in the non-transitory storage medium 111. In still another example, in one or more implementations, the multiple instance of content may not be decrypted by the smart card before being stored in the non-transitory storage medium and may instead be decrypted upon playback.

In still other embodiments, as shown in FIG. 2, a system 112 may be provided where the demultiplexing operation and thus the demultiplexer 109 may be omitted. That is, as described above, the ECM may be provided to a smartcard 108 which may decrypt the ECM to obtain the CW 103 and the data received via the tuned frequency may be descrambled by a descrambler 110 utilizing the CW 103. However, the multiplexed data may then be stored in a computer readable storage medium 111 in its multiplexed form. That is, the content stream may remain multiplexed and the multiple instances of content may be stored in multiplexed form rather than separating out the several instances of content and storing related instances of content in groups of associated content.

In the context of the primetime television discussed above, this may include storage of content relating to television programming on four different channels, for example, from seven PM to ten PM on a given day. The information stored may not be demultiplexed into separate files associated with the four channels or into separate files associated with the particular programs on those channels. Rather, a single block of information may be stored and may include data relating to all four channels arranged in multiplexed form as received from the combiner, for example.

As shown in FIG. 3, a system 120 may be provided and may include devices having parts or portions of the system 112 included therein. For example, as shown, the system 120 may include a content receiver 122 having a tuner 107, a descrambler 110, a smartcard 108, and a computer readable storage medium 111. The content receiver 122 may also include a computer processor 124 in communication with the tuner 107 and the storage medium 111 for controlling the tuner 107 and accessing information from or sending information to the storage medium 111. An output 126 may also be provided in communication with the processor 124 for receiving content from the processor and transmitting the content to the presentation device 128.

The system 120 may perform the method 150 shown in FIG. 4, for accessing and displaying the multiple instances of content. Before describing the method, some discussion is provided with respect to identifiers used in the method. That is, for purposes of accessing and displaying the multiple instances of content stored in the block of content, several identifiers may be provided. In some embodiments, block identifiers may be provided for distinguishing one or more blocks of multiplexed content from one another. Additionally, content identifiers may be provided for distinguishing the multiple instances of content within a block from one another. Still further, content identifying information may be provided that is recognizable by a user for use in selecting content.

Each of the mentioned identifiers (i.e., block identifiers, content identifiers, and content identifying information) may now be described. The stored multiplexed information, or block, may be provided with a block identifier. That is, for example, where the block is stored as a file, a file name may be provided or, where a particular file is not established, a header or other identifier of the block may be provided. In some embodiments, the block identifier may reflect the date, time, type of data, or other indication of the stored content. For example, in the context of the primetime channel recording discussed above, the block identifier may include an indication of the primetime-type recording and the date of the recording. Accordingly, a file with a name such as primetime03152011 may reflect that the file contains a block of data including all of the primetime television programs from Mar. 15, 2011. Other formats and family conventions may also be used.

In addition to block identification, content identifiers may also be provided relating to the content stored within the block and may be stored with each instance of content for use in later extracting selected content from the block. Content identifiers may be configured for the particular environment where the content is stored. For example, the content identifiers may be the same content identifiers used in the above-described multiplexing process. As such, the content identifiers may be in the form of PIDs or groups of PIDs used for multiplexing, transmitting, and demultiplexing content. The PIDs or groups of PIDs may, thus, be associated with a particular channel, for example, and may also be associated with a particular time that the content aired on that channel.

In some embodiments, multiple stages of multiplexing may occur and a given instance of content may include audio, video, and data. When these portions of content are multiplexed, they may each be associated with a PID. This multiplexed audio, video, and data stream may be further multiplexed with another previously multiplexed audio, video, and data stream where each portion of the previously multiplexed stream is also associated with a PID. The two previously multiplexed streams may each be given an additional PID. As such, a primary PID may define a content group of audio, visual, and data each having secondary PIDs associated therewith. Greater or lesser numbers of stages of multiplexing may be used and PIDs may be associated with the content at each stage. Accordingly, in the context of television content, a television program may thus define a plurality of PIDS. That is, for a given program, each instance of audio, visual, and data, may each have a PID. In addition, each multiplexed group of audio, visual, and data, may also have a PID. As such, in searching for instances of content for a particular television program, a search and scan for a group of PIDs may be used to identify instances of content relevant to the program.

In addition to block identification and content identifiers, content identifying information may also be stored. The content identifying information may be information familiar to a user and be configured for distinguishing selected content from other content stored in the system. As such, the content identifying information may be used to identify the selected content and lookup, track, or otherwise determine additional information associated with the content that may be less familiar to the user. For example, in one embodiment, the content identifying information may be used to retrieve a content identifier in the form of a PID or group of PIDs.

In accordance with the above, the content identifying information may include any identifying information such as a file name, an index listing, or other information for use in identifying content amidst a grouping of content. In the context of television programming, for example, content identifying information may include information commonly provided by one or more program guides such as an electronic program guide (EPG), stored content menu, or other user interface for selecting programs. As such, the content identifying information may include a program name and a date and time of airing, for example. In other embodiments, the content identifying information may include a television channel on which the content aired and the time of airing. In still other embodiments, the content identifying information may include a program name and an episode name or other identifier distinguishing an episode from other episodes of the same program.

Some of the described identifiers may be provided with the incoming content stream that is stored in the block and other identifiers may be provided or retrieved from other content streams. For example, in the context of television programming, identifying information or identifiers may be provided with a stream of content associated with an electronic programming guide (EPG). That is, in addition to content identifying information, content identifiers such as PIDs may also be provided with the EPG transmission to indicate what PID or group of PIDs will be used for transmitting and storing content.

The identifiers and other identifying information may be received by the content receiver 122 and, for purposes of later extraction of some or all of the multiple instances of content in one or more blocks, some indexing processes may be performed. For purposes of searching or scanning for blocks, a block selection module 130 in the form of a table or otherwise arranged file may be created and stored having block identifiers associated with the one or more content identifiers stored therein. Accordingly, this block selection module 130 may be used to determine which block or blocks have content associated with a given content identifier. For purposes of searching within a given block, a content identifier selection module 132 in the form of a table or otherwise arranged file may be created and stored having content identifiers associated with content identifying information. This content identifier selection module 132 may be used to retrieve content identifiers associated with selected content. These modules 130, 132 may be produced as the content stream is received and may be available for accessing or reading immediately. That is, the module 130, 132 may be updated, for example, as each instance of content is received having and associated content identifier. The processor 124 may analyze the incoming content stream and each time a content identifier is encountered, the processor 124 may store the content identifier in the modules 130, 132. The processor 124 may store the content identifier in a list, for example, in the block selection module 130. For the content identifier selection module 132, the processor 124 may store the content identifier with the content identifying information of the associated content in the stream. The modules 130, 132 may each be accessible while a block of data is being received such that programs may be accessed while the block is being stored to avoid having to wait for the whole block to stored. In some cases, some of the data in the modules 130, 132 may be populated ahead of time based on information available in an EPG, for example, or information actively sent by a service provider for purposes of populating the modules 130, 132.

Having described the system 122 for accessing and displaying the multiple instances of content, the arrangement of the stored multiple instances content, and the identifying information associated therewith, the method 150 of accessing and displaying the multiple instances of content may be described.

With reference to FIG. 4, a flow chart of the method 150 for accessing and displaying the multiple instances of content is shown. The method 150 may include receiving content identifying information 152 for the content and instructions for displaying the content. A content identifier or PID, or group of PIDs, may be determined 154 from the content identifying information. A multiplexed block may be selected 156 based on the content identifiers being search for and the block may be accessed 158 and scanned 160 for the content identifiers. Where corresponding identifiers are found, the associated content may be processed.

Content identifying information may be received 152 from a user. The content identifying information may be received 152 when a user selects a television program from a menu. The menu may be arranged in one of several different ways, such as by channel and time, alphabetically by program name, or some other organizational pattern. In any of these cases, the selection of content by the user via a selection button on a remote control, or other selection mechanism, may provide the content identifying information.

The content identifier or group of content identifiers may be retrieved 154 based on the content identifying information. That is, the content identifier selection module 132 may be accessed by the processor 124 with the content identifying information. The content identifier selection module 132 may be used to look up the content identifiers associated therewith. For example, content identifying information including a channel, a date, and a time, may be used to access the content identifier selection module 132 and determine the PID or group of PIDs associated with the program.

In some embodiments, the content identifiers may be stored in the one or more selection menus available to a user. As such, selection of content by a user may automatically lead to the associated content identifiers and the step of accessing a content identifier selection module 132 may not be required.

The system may also retrieve 156 a block identifier. That is, while the system may have a content identifier or group of content identifiers, it may not have information regarding which block the content is stored in. Accordingly, the processor 124 may access the block selection module 130 and lookup or scan the module 130 to determine which block the content identifiers may be found in.

The processor 124 may then access 158 the block and begin scanning 160 the block of content for content identifiers associated with the selected content (i.e., selected content identifiers). As the block is scanned and content identifiers are encountered, the encountered content identifiers may be compared to the selected content identifiers. Where the encountered content identifiers do not match or correspond to the selected content identifiers, the processor 124 may scan for additional content identifiers. Where the encountered content identifiers do match or correspond to the selected content identifiers, the content in the block associated with the encountered content identifier may be processed. The processor may continue to scan the block for content identifiers and may continue to process content associated with encountered identifiers that match or correspond to the selected content identifiers. The processor 124 may continue this process until it reaches the end of the block.

Processing the content may include reading the content from the storage medium, synchronizing the content with related content, and transmitting the content to a presentation device. That is, the multiplexed nature of the multiple instances of content in the block may be such that several pieces of selected content are re-assembled prior to transmitting to a presentation device. The synchronizing process may involve re-assembling the content based on content identifiers, but also based on time stamps, for example. In the context of television programming for example, a given instance of content may include audio, visual, and/or data components, for example. Each audio, visual, or data instance of content may include a time stamp for use in coordinating the portions and assuring that the program presents in a coordinated fashion. In addition, each group of audio, visual, and data, (i.e., once re-assembled based on time) may be re-assembled and sequenced with other groups of audio, visual, and data such that the stream of content for displaying a program is re-assembled. The processor may conduct these operations and transmit the content to a presentation device for viewing.

At least one advantage associated with the system and method described above is that, by not de-multiplexing the data at the time of storing the data, wear may be avoided on the storage medium. That is, for example, if the content was de-multiplexed and a hard drive was used as a storage medium, the heads on the hard drive may move back and forth between transcription locations as the data is received and written to disc. That is, for example, the writing heads may transcribe content for a given channel in one location and be interrupted and move to another location for transcribing content for another channel. When content for the original channel is received, the heads may move back to the original location to transcribe additional content for the original channel. This process of writing the data to disk may cause the storage medium or device to wear out relatively quickly and may lead to transcription errors. Additionally, the movement of the heads may be a slower operation than the transcription of content. As such, storage of data that requires movement of the writing heads may have a slower performance than storage of data that does not require movement of the writing heads. However, in the system described herein, the storage medium may be able to write the incoming stream of content to disc without moving back and forth between transcription locations and the data may still be usable for presenting content.

In the present disclosure, the methods disclosed may be implemented as sets of instructions or software readable by a device. Further, it is understood that the specific order or hierarchy of operations in the methods disclosed are examples of sample approaches. In other embodiments, the specific order or hierarchy of operations in the method can be rearranged while remaining within the disclosed subject matter. The accompanying method claims present elements of the various operations in a sample order, and are not necessarily meant to be limited to the specific order or hierarchy presented.

The described disclosure may be provided as a computer program product, or software, that may include a non-transitory machine-readable medium having stored thereon instructions, which may be used to program a computer system (or other electronic devices) to perform a process according to the present disclosure. A non-transitory machine-readable medium includes any mechanism for storing information in a form (e.g., software, processing application) readable by a machine (e.g., a computer). The non-transitory machine-readable medium may take the form of, but is not limited to, a magnetic storage medium (e.g., floppy diskette, video cassette, and so on); optical storage medium (e.g., CD-ROM); magneto-optical storage medium; read only memory (ROM); random access memory (RAM); erasable programmable memory (e.g., EPROM and EEPROM); flash memory; and so on.

It is believed that the present disclosure and many of its attendant advantages will be understood by the foregoing description, and it will be apparent that various changes may be made in the form, construction and arrangement of the components without departing from the disclosed subject matter or without sacrificing all of its material advantages. The form described is merely explanatory, and it is the intention of the following claims to encompass and include such changes.

While the present disclosure has been described with reference to various embodiments, it will be understood that these embodiments are illustrative and that the scope of the disclosure is not limited to them. Many variations, modifications, additions, and improvements are possible. More generally, embodiments in accordance with the present disclosure have been described in the context or particular embodiments. Functionality may be separated or combined in blocks differently in various embodiments of the disclosure or described with different terminology. These and other variations, modifications, additions, and improvements may fall within the scope of the disclosure as defined in the claims that follow. 

The invention claimed is:
 1. A method for displaying content stored in a block of multiplexed content, the multiplexed content including a plurality of instances of content wherein each instance of content includes an associated content identifier, the method comprising: receiving, at a content receiver, content identifying information for the content in association with a request to present the content; determining a selected content identifier based on the content identifying information, wherein the selected content identifier comprises a packet identifier; selecting the block from a plurality of blocks based on the selected content identifier, wherein selection of the block comprises: determining which block to select by accessing a block selection module; and searching a table of the block selection module for the selected content identifier and returning a block identifier, wherein the table relates a plurality of content identifiers with a plurality of block identifiers; scanning the block for a content identifier and encountering the content identifier; comparing the encountered content identifier to the selected content identifier; and processing an instance of content associated with the encountered content identifier where the encountered content identifier corresponds to the selected content identifier, wherein processing the instance of content comprises: determining a time stamp associated with the instance of content; and synchronizing the instance of content with other instances of content having a matching time stamp to create a portion of the content.
 2. The method of claim 1, wherein processing the instance of content comprises sequencing the portion of content with other portions of content.
 3. The method of claim 1, wherein the multiplexed instances of content include audio instances of content and video instances of content and the portion of content includes synchronized audio and visual content.
 4. The method of claim 1, wherein the content identifiers include packet identifiers.
 5. The method of claim 1, wherein determining a selected content identifier includes accessing a content identifier selection module.
 6. The method of claim 5, wherein determining a selected content identifier further comprises searching the content identifier selection module for the content identifying information and returning the selected content identifier.
 7. The method of claim 1, wherein selecting the block includes selecting the block based on the block identifier.
 8. The method of claim 1, further comprising repeating the scanning, comparing, and processing operations to assemble the content.
 9. The method of claim 1, further comprising: updating, by the content receiver, the block selection module in response to content stream being stored, such that one or more content identifiers associated with the content stream are added to the table of the block selection module.
 10. A system for accessing content stored in a block of multiplexed content, the block of multiplexed content including a plurality of instances of content wherein each instance of content includes an associated content identifier, the system comprising: a non-transitory computer readable storage medium having a plurality of blocks of multiplexed content stored thereon, wherein the plurality of blocks of multiplexed content comprises the block of multiplexed content; a processor in communication with the non-transitory computer readable storage medium; a block selection module accessible by the processor and including block identifiers associated with content identifiers stored in respective blocks of the plurality of blocks of multiplexed content; and a content identifier selection module accessible by the processor and including content identifiers associated with content identifying information relating to the plurality of instances of content; wherein the non-transitory computer readable storage medium includes computer implemented instructions stored thereon defining operations, the operations comprising: receiving content identifying information; accessing the content identifier selection module and using the content identifying information to select a content identifier; accessing the block selection module and using the selected content identifier to select the block of multiplexed content, wherein accessing the block selection module comprises: searching a table of the block selection module for the selected content identifier and returning a block identifier, wherein the table relates a plurality of content identifiers with a plurality of block identifiers; scanning the block identified by the block identifier for content identifiers matching the selected content identifier; and processing multiple instances of content each associated with the matching content identifiers to assemble the content, wherein said operation of processing multiple instances of content each associated with the matching content identifiers to assemble the content further comprises: determining a time stamp associated with each instance of content of the multiple instances of content associated with the matching content identifiers; and synchronizing the instances of content of the multiple instances that have matching time stamps to assemble the content.
 11. The system of claim 10, further comprising transmitting the assembled content to at least one presentation device.
 12. The system of claim 10, wherein the block of multiplexed content includes audio instances of content and video instances of content and the content includes synchronized audio and visual content. 